package com.aplikata.evok.service;

import java.util.Date;
import java.util.List;

import org.apache.myfaces.custom.fileupload.UploadedFile;
import org.primefaces.model.ScheduleEvent;

import com.aplikata.evok.bo.ContactPerson;
import com.aplikata.evok.bo.DoctorSchedule;
import com.aplikata.evok.bo.DomainPatient;
import com.aplikata.evok.bo.Patient;
import com.aplikata.evok.bo.PatientAttachement;
import com.aplikata.evok.bo.PatientNode;
import com.aplikata.service.PublicService;

/**
 * @ClassName: EvokPatientService
 * @Description: TODO
 * @author Huyun
 * @date 17. 5. 2012. 09:23:40
 */
public interface EvokPatientService extends PublicService {

	DomainPatient updatePatient(boolean readonly, Patient patient, DomainPatient domainPatient, String userName,
			List<PatientNode> patientNodeList) throws Exception;

	List<DoctorSchedule> getPatientResversationInCanlendar(Long patientId, Date dateFrom, Date dateTo);

	List<ScheduleEvent> findPatientAllCalendar(Long patientId, Date dateFrom, Date dateTo);

	Object[] getTherapyObjForCalendar(Long patientTherapyId);

	List<Object[]> getPatientTodoList(Long patientId);

	PatientAttachement submitPatientAttachement(PatientAttachement patientAtt, UploadedFile att) throws Exception;

	void deletePatientAttachement(PatientAttachement patientAtt) throws Exception;

	ContactPerson updatePatientContactPerson(ContactPerson contactPerson) throws Exception;
}
